package jflowmap.model.ontology.calculation;

import java.util.Set;

import jflowmap.model.ontology.Context;
import jflowmap.model.ontology.Dimension;
import jflowmap.util.Pair;

public abstract class AbstractConstraint implements Constraint {
	private final String constraintName;
	private final Context context;
	private VariableDefinition variable;

	public AbstractConstraint(final String constraintName, final Context context) {
		this.constraintName = constraintName;
		this.context = context;
	}

	public VariableDefinition getVariableDefinition() {
		return this.variable;
	}
	
	public final String getName() {
		return this.constraintName;
	}
	
	public final Context getContext() {
		return this.context;
	}

	public abstract Set<Pair<String, Dimension>> getDimensions();
	
	@Override
	public void setUnboundVariable(Variable variable) {	
	}
	
	@Override
	public final void setVariableDefinition(VariableDefinition var) {
		this.variable = var;
	}
}